<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <title>JSDoc: Module: vertx/parse_tools</title>
    
    <script src="scripts/prettify/prettify.js"> </script>
    <script src="scripts/prettify/lang-css.js"> </script>
    <!--[if lt IE 9]>
      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
    <![endif]-->
    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
</head>

<body>

<div id="main">
    
    <h1 class="page-title">Module: vertx/parse_tools</h1>
    
    



<section>
    
<header>
    <h2>
    vertx/parse_tools
    </h2>
    
</header>  

<article>
    <div class="container-overview">
    
    
    
        
            <div class="description"><p>
A helper class which allows you to easily parse protocols which are
delimited by a sequence of bytes, or fixed size records.
Instances of this class take as input <a href="buffer-Buffer.html"><code>Buffer</code></a>
instances containing raw bytes, and output records. For example, if I had a
simple ASCII text protocol delimited by '\n' and the input was the
following:
</p>
<pre>
buffer1:HELLO\nHOW ARE Y
buffer2:OU?\nI AM
buffer3: DOING OK
buffer4:\n
</pre>
<p>Then the output would be:</p>
<pre>
buffer1:HELLO
buffer2:HOW ARE YOU?
buffer3:I AM DOING OK
</pre>
<p>
Instances of this class can be changed between delimited mode and fixed size
record mode on the fly as individual records are read, this allows you to
parse protocols where, for example, the first 5 records might all be fixed
size (of potentially different sizes), followed by some delimited records,
followed by more fixed size records.
</p>
<p>
Instances of this class can't currently be used for protocols where the text
is encoded with something other than a 1-1 byte-char mapping.
</p></div>
        
        
        
<dl class="details">
    
        
    
    
    

    
    
    
    
    
    
    
    
    
    
    
    
    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="parse_tools.js.html">vertx/parse_tools.js</a>, <a href="parse_tools.js.html#line58">line 58</a>
    </li></ul></dd>
    
    
    
    
    
    <dt class="tag-see">See:</dt>
    <dd class="tag-see">
        <ul>
            <li><a href="https://github.com/vert-x/vert.x/blob/master/vertx-core/src/main/java/org/vertx/java/core/parsetools/RecordParser.java">https://github.com/vert-x/vert.x/blob/master/vertx-core/src/main/java/org/vertx/java/core/parsetools/RecordParser.java</a></li>
        </ul>
    </dd>
    
    
    
</dl>

        
        
    
    </div>
    
    
    
    
    
    
    
    
    
    
    
    
    
    
        <h3 class="subsection-title">Methods</h3>
        
        <dl>
            
<dt>
    <h4 class="name" id="createDelimitedParser"><span class="type-signature">&lt;static> </span>createDelimitedParser<span class="signature">(delim, output)</span><span class="type-signature"> &rarr; {org.vertx.java.core.parsetools.RecordParser}</span></h4>
    
    
</dt>
<dd>
    
    
    <div class="description">
        Create a new <code>RecordParser</code> instance, initially in delimited
mode, and where the delimiter can be represented by <code>delim</code>.
<code>output</code> will receive whole records which have been parsed.
    </div>
    

    
    
    
    
    
        <h5>Parameters:</h5>
        

<table class="params">
    <thead>
	<tr>
		
		<th>Name</th>
		
		
		<th>Type</th>
		
		
		
		
		
		<th class="last">Description</th>
	</tr>
	</thead>
	
	<tbody>
	
	
        <tr>
            
                <td class="name"><code>delim</code></td>
            
            
            <td class="type">
            
                
<span class="param-type">string</span>


            
            </td>
            
            
            
            
            
            <td class="description last">The record delimiter</td>
        </tr>
	
	
	
        <tr>
            
                <td class="name"><code>output</code></td>
            
            
            <td class="type">
            
                
<span class="param-type"><a href="buffer-Buffer.html">module:vertx/buffer~Buffer</a></span>


            
            </td>
            
            
            
            
            
            <td class="description last">The output buffer</td>
        </tr>
	
	
	</tbody>
</table>
    
    
    
<dl class="details">
    
        
    
    
    

    
    
    
    
    
    
    
    
    
    
    
    
    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="parse_tools.js.html">vertx/parse_tools.js</a>, <a href="parse_tools.js.html#line72">line 72</a>
    </li></ul></dd>
    
    
    
    
    
    
    
</dl>

    
    

    

    
    
    
    
    
    <h5>Returns:</h5>
    
            
<div class="param-desc">
    A delimited record parser
</div>



<dl>
	<dt>
		Type
	</dt>
	<dd>
		
<span class="param-type">org.vertx.java.core.parsetools.RecordParser</span>


	</dd>
</dl>

        
    
    
</dd>

        
            
<dt>
    <h4 class="name" id="createFixedParser"><span class="type-signature">&lt;static> </span>createFixedParser<span class="signature">(size, output)</span><span class="type-signature"> &rarr; {org.vertx.java.core.parsetools.RecordParser}</span></h4>
    
    
</dt>
<dd>
    
    
    <div class="description">
        Create a new <code>RecordParser</code> instance, initially in fixed size
mode, and where the record size is specified by the <code>size</code>
parameter.  <code>output</code> will receive whole records which have been
parsed.
    </div>
    

    
    
    
    
    
        <h5>Parameters:</h5>
        

<table class="params">
    <thead>
	<tr>
		
		<th>Name</th>
		
		
		<th>Type</th>
		
		
		
		
		
		<th class="last">Description</th>
	</tr>
	</thead>
	
	<tbody>
	
	
        <tr>
            
                <td class="name"><code>size</code></td>
            
            
            <td class="type">
            
                
<span class="param-type">number</span>


            
            </td>
            
            
            
            
            
            <td class="description last">The record size</td>
        </tr>
	
	
	
        <tr>
            
                <td class="name"><code>output</code></td>
            
            
            <td class="type">
            
                
<span class="param-type"><a href="buffer-Buffer.html">module:vertx/buffer~Buffer</a></span>


            
            </td>
            
            
            
            
            
            <td class="description last">The output buffer</td>
        </tr>
	
	
	</tbody>
</table>
    
    
    
<dl class="details">
    
        
    
    
    

    
    
    
    
    
    
    
    
    
    
    
    
    
    <dt class="tag-source">Source:</dt>
    <dd class="tag-source"><ul class="dummy"><li>
        <a href="parse_tools.js.html">vertx/parse_tools.js</a>, <a href="parse_tools.js.html#line85">line 85</a>
    </li></ul></dd>
    
    
    
    
    
    
    
</dl>

    
    

    

    
    
    
    
    
    <h5>Returns:</h5>
    
            
<div class="param-desc">
    A fixed size record parser
</div>



<dl>
	<dt>
		Type
	</dt>
	<dd>
		
<span class="param-type">org.vertx.java.core.parsetools.RecordParser</span>


	</dd>
</dl>

        
    
    
</dd>

        </dl>
    
    
    
    
    
</article>

</section>  




</div>

<nav>
    <h2><a href="index.html">Index</a></h2><h3>Modules</h3><ul><li><a href="module-vertx.html">vertx</a></li><li><a href="buffer.html">vertx/buffer</a></li><li><a href="console.html">vertx/console</a></li><li><a href="container.html">vertx/container</a></li><li><a href="event_bus.html">vertx/event_bus</a></li><li><a href="file_system.html">vertx/file_system</a></li><li><a href="http.html">vertx/http</a></li><li><a href="multi_map.html">vertx/multi_map</a></li><li><a href="net.html">vertx/net</a></li><li><a href="parse_tools.html">vertx/parse_tools</a></li><li><a href="pump.html">vertx/pump</a></li><li><a href="shared_data.html">vertx/shared_data</a></li><li><a href="sockjs.html">vertx/sockjs</a></li><li><a href="timer.html">vertx/timer</a></li></ul><h3>Externals</h3><ul><li><a href="InetSocketAddress.html">InetSocketAddress</a></li><li><a href="Buffer_.html">Buffer</a></li><li><a href="RecordParser.html">RecordParser</a></li><li><a href="SockJSSocket.html">SockJSSocket</a></li></ul><h3>Classes</h3><ul><li><a href="buffer-Buffer.html">Buffer</a></li><li><a href="file_system.AsyncFile.html">AsyncFile</a></li><li><a href="http.HttpClient.html">HttpClient</a></li><li><a href="http.HttpClientRequest.html">HttpClientRequest</a></li><li><a href="http.HttpClientResponse.html">HttpClientResponse</a></li><li><a href="http.HttpServer.html">HttpServer</a></li><li><a href="http.HttpServerFileUpload.html">HttpServerFileUpload</a></li><li><a href="http.HttpServerRequest.html">HttpServerRequest</a></li><li><a href="http.HttpServerResponse.html">HttpServerResponse</a></li><li><a href="http.RouteMatcher.html">RouteMatcher</a></li><li><a href="http.WebSocket.html">WebSocket</a></li><li><a href="multi_map-MultiMap.html">MultiMap</a></li><li><a href="net.NetClient.html">NetClient</a></li><li><a href="net.NetServer.html">NetServer</a></li><li><a href="net.NetSocket.html">NetSocket</a></li><li><a href="pump-Pump.html">Pump</a></li><li><a href="sockjs.SockJSServer.html">SockJSServer</a></li></ul><h3>Mixins</h3><ul><li><a href="ClientSSLSupport.html">ClientSSLSupport</a></li><li><a href="ReadStream.html">ReadStream</a></li><li><a href="ServerSSLSupport.html">ServerSSLSupport</a></li><li><a href="ServerTCPSupport.html">ServerTCPSupport</a></li><li><a href="SSLSupport.html">SSLSupport</a></li><li><a href="TCPSupport.html">TCPSupport</a></li><li><a href="WriteStream.html">WriteStream</a></li></ul><h3><a href="global.html">Global</a></h3>
</nav>

<br clear="both">

<footer>
    Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.2.0-dev</a> on Wed Jul 17 2013 20:27:24 GMT+0100 (BST)
</footer>

<script> prettyPrint(); </script>
<script src="scripts/linenumber.js"> </script>
</body>
</html>